#include "../cute/cute.h"
#include "ide_listener.h"
#include "cute_runner.h"
#include "storePalabras/StorePalabrasTests.h"
#include "lista/ListaTests.h"

#include "managers/operaciones/OperacionesManagerTests.h"
#include "lista/ComparadorContadorTests.h"
#include "managers/autores/AutoresManagerTests.h"
void runSuiteStorePalabras() {
	cute::suite s;
	//Tests
	s.push_back(CUTE_SMEMFUN(StorePalabrasTests,ocurrenciasSinCorrimiento));
	s.push_back(
			CUTE_SMEMFUN(StorePalabrasTests,ocurrenciasConCorrimientoDerecho));
	s.push_back(CUTE_SMEMFUN(StorePalabrasTests,inOrden));
	s.push_back(CUTE_SMEMFUN(StorePalabrasTests,inOrdenOrdenOcurrenciasTotales));
	//AfterTests
	cute::ide_listener lis;
	cute::makeRunner(lis)(s, "StorePalabras Tests");
}

void runSuiteLista() {
	cute::suite s;
	s.push_back(CUTE_SMEMFUN(ListaTests,addOrdenadoAsc));
	s.push_back(CUTE_SMEMFUN(ListaTests,copiado));
	s.push_back(CUTE_SMEMFUN(ListaTests,add));
	s.push_back(CUTE_SMEMFUN(ListaTests,eliminar));
	s.push_back(CUTE_SMEMFUN(ListaTests,iterador));
	s.push_back(CUTE_SMEMFUN(ListaTests,addSinOrden));

	cute::ide_listener lis;
	cute::makeRunner(lis)(s, "Lista Tests");
}

void runSuiteOperacionesManager() {
	cute::suite s;
	s.push_back(CUTE_SMEMFUN(OperacionesManagerTests,entrenar));

	cute::ide_listener lis;
	cute::makeRunner(lis)(s, "Operaciones Manager Tests");
}

void runSuiteComparadorContador() {
	cute::suite s;
	s.push_back(CUTE_SMEMFUN(ComparadorContadorTests,comparar));
	cute::ide_listener lis;
	cute::makeRunner(lis)(s, "Comparador Contador Tests");
}
void runSuiteAutoresManager() {
	cute::suite s;
	s.push_back(CUTE_SMEMFUN(AutoresManagerTests,setearAutorRepetido));
	s.push_back(CUTE_SMEMFUN(AutoresManagerTests,setearAutores));
	s.push_back(CUTE_SMEMFUN(AutoresManagerTests,agregarConExcepcion));
	cute::ide_listener lis;
	cute::makeRunner(lis)(s, "Autores Manager Tests");
}

int main() {
	runSuiteLista();
	runSuiteStorePalabras();
	runSuiteOperacionesManager();
	runSuiteComparadorContador();
	runSuiteAutoresManager();
	return 0;
}

